As operating frequencies of integrated circuits increase, propagation delays resulting from relatively long signal paths can set up challenging timing issues. In some cases, the delay of a signal propagating from one location of an integrated circuit to another location may be greater than one or more clock periods. For example, the propagation delay from the physical center of an integrated circuit to an outer edge of the integrated circuit may be 4 ns, whereas the clock period may be only 1 ns for integrated circuits operated at 1 GHz. Signals may be provided to the integrated circuit at different physical locations on the integrated circuit due to the relatively large number of input nodes required and the relatively large size of input pads, pins, or other input nodes. In order to efficiently capture the signals provided to the integrated circuit at different physical locations, each signal or set of signals may be captured with a separate clock signal).
Notwithstanding the different physical locations at which signals are provided to an integrated circuit and the different propagation delays among such signals, the signals may need to be combined or otherwise act together within the integrated circuit. As one example, in a memory circuit, a command signal may be provided near the physical middle of the circuit, and a set of data signals may be provided along the physical top or bottom edge of the circuit. A write circuit may receive both the command signal and the set of data signals, and in response may write the data contained in the set of data signals to the memory array. However, if the propagation delay from the command signal input to the write circuit is different than the propagation delay from the data signals input to the write circuit, the timing of one or both of the command signal and/or the set of data signals may need to be altered so that the write circuit can synchronously provide the data with the correct command.
When synchronizing the timing for two different signals, typically a delay circuit is used on the shorter signal path and its corresponding clock path, with the delays mimicking the extra propagation delay of the longer signal path. Continuing with the example above, if the path to the write circuit is much longer for the command signal than it is for the set of data signals, a delay circuit may be used to delay the set of data signals and the corresponding clock for the data signals, relative to the command signal or the command signal's corresponding system clock. Such delay circuits can, however, consume significant amounts of power, occupy large amounts of area (particularly if delay circuits are needed for each of dozens of data signals), and be imprecise due to temperature and other variations.